package com.chushouya.manager.service.api;


import com.chushouya.manager.constants.AppLoginRoleEnum;
//=====manager.dto.admin.user.login.*;
import com.chushouya.manager.dto.admin.user.login.*;
import com.chushouya.manager.dto.admin.user.login.*;

import javax.validation.Valid;

/**
 * 用户登录服务
 */
public interface UserLoginService {

    /**
     * 发送登录验证码
     *
     * @param phone 手机号码
     */
    void sendCode(String scene, String phone);

    /**
     * 短信验证码登录
     */
    UserInfoDTO smsLogin(SmsLoginDTO dto);

    /**
     * 小程序登录
     */
    UserInfoDTO appletLogin(AppletLoginDTO dto);

    /**
     * 业务员登录
     */
    UserInfoDTO clerkLogin(ClerkLoginDTO dto);

    /**
     * 业务员短信登录
     */
    UserInfoDTO clerkSmsLogin(SmsLoginDTO dto);

    /**
     * code换取小程序用户id
     */
    String code2Session(Code2SessionDTO dto);


    /**
     * 支付宝code换取用户id
     * @param dto
     * @return
     */
    void code2AlipayOpenId(Code2SessionDTO dto);

    /**
     * 获取用户信息
     *
     */
    UserInfoDTO handleMobileLogin(AppLoginRoleEnum loginRole, String openId, String phone, String appId, String platform);


    UserInfoDTO getLoginUserInfo(String appId, Long userId);
    /**
     * 获取手机号
     */
    String getAppletUserPhone(AppletLoginDTO dto);

    void logout(String token);

    UserInfoDTO jPushLogin(@Valid JPushLoginDTO dto);

    /**
     * 密码登录
     */
    UserInfoDTO passwordLogin(PasswordLoginDTO dto);
}
